.TH std::ranges::cartesian_product_view::iterator::iterator 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::ranges::cartesian_product_view::iterator::iterator \- std::ranges::cartesian_product_view::iterator::iterator

.SH Synopsis
   /*iterator*/() = default;                                         \fB(1)\fP (since C++23)
   constexpr /*iterator*/( /*iterator*/<!Const> i )

       requires Const && (
           std::convertible_to<ranges::iterator_t<First>,
   ranges::iterator_t<const First>>                                  \fB(2)\fP (since C++23)
           && ... &&
           std::convertible_to<ranges::iterator_t<Vs>,
   ranges::iterator_t<const Vs>>

       );
   private:

   constexpr /*iterator*/(
       /*Parent*/& parent,                                           \fB(3)\fP (exposition
       std::tuple<ranges::iterator_t</*maybe-const*/<Const, First>>,     only*)

                  ranges::iterator_t</*maybe-const*/<Const, Vs>>...>
   current );

   Construct an iterator.

   1) Default constructor. Value-initializes the parent_ with nullptr and
   default-initializes the current_.
   2) Conversion from /*iterator*/<false> to /*iterator*/<true>. Initializes parent_
   with i.parent_ and current_ with std::move(i.current_).
   3) A private constructor which is used by cartesian_product_view::begin and
   cartesian_product_view::end. This constructor is not accessible to users.
   Initializes parent_ with std::addressof(parent) and current_ with
   std::move(current).

.SH Parameters

   i - an /*iterator*/<false>

.SH Example

    This section is incomplete
    Reason: no example

.SH Category:
     * Todo no example
